import fs from 'fs-extra';
import path from 'path';

export function copyNativeRes() {
  const waitPath = path.resolve(__dirname, '../src/nativeResources');
  const buildPath = path.resolve(
    __dirname,
    '../dist',
    process.env.NODE_ENV === 'production' ? 'build' : 'dev',
    process.env.UNI_PLATFORM!,
    'nativeResources',
  );

  return {
    enforce: 'post',
    async writeBundle() {
      try {
        // 检查源目录是否存在
        const sourceExists = await fs.pathExists(waitPath);
        if (!sourceExists) {
          console.warn(`[copyNativeRes] 警告：源目录 "${waitPath}" 不存在，跳过复制操作。`);
          return;
        }

        // 确保目标目录及中间目录存在
        await fs.ensureDir(buildPath);
        console.log(`[copyNativeRes] 确保目标目录存在：${buildPath}`);

        // 执行文件夹复制
        await fs.copy(waitPath, buildPath);
        console.log(
          `[copyNativeRes] 成功将 nativeResources 目录中的资源移动到构建目录：${buildPath}`,
        );
      } catch (error) {
        console.error(`[copyNativeRes] 复制资源失败：`, error);
      }
    },
  };
}
